iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
生成式 AI

2024 年用 LangGraph 從零開始實現 Agentic AI System系列 第 2

【Day 2】- 什麼是 AI 代理?複合式 AI 與 Agentic AI 的創新之路

  • 分享至 

  • xImage
  •  

摘要
這篇文章深入探討了人工智慧領域從單一模型到複合式 AI 系統的轉變,並重點介紹了 AI 代理 的概念和應用。文章首先以智慧打卡系統為例,說明單一模型在處理複雜任務時的局限性,進而引出複合式 AI 系統的概念及其優勢,例如模組化設計、靈活性以及解決問題的能力等。接著,文章詳細介紹了 AI 代理 的定義、組成要素以及與傳統聊天機器人的區別,強調 AI 代理具備更強的自主決策能力和情境感知能力。最後,文章以打卡系統為例,展示了如何利用 AI 代理解決複雜問題,並展望了 Agentic AI 在未來的發展趨勢,鼓勵讀者思考其應用潛力。

前言

img

當單一模型已無法滿足現代應用需求時,複合式 AI 以其獨特的多 AI 代理結構成為新時代的主角。本文將深入剖析複合式 AI 的演進過程及其卓越應用,並闡明 Agentic AI 如何從傳統聊天機器人中脫穎而出,成為具有自主決策能力的代理。

我們是如何從單一模型走到複合式 AI

讓我們用一個具體的例子來說明這一點。假設你想要為公司開發一個智慧打卡系統,並且想知道如何實現員工的自動考勤和假期查詢。

你可以將這個需求輸入一個能夠生成解決方案的模型。通常會這樣執行,把公司人員特徵抓出來並交給 AI 模型好好訓練一番,這樣就可以讓公司攝影機作為打上班卡、打下班卡的依據,當模型看到你有進出大門時就記錄下來,這是常見的影像辨識模型任務。

更進一步來說, 如果不只想要查看員工是否上下班,還想知道這員工還有多少假期,這時候就不是靠影像辨識模型了,得要去拉資料找到對應 ID 之後,在配合法條才知道答案。我們可以預期單一模型可能無法完全滿足需求,因為它需要處理影像辨識和資料查詢兩個不同的任務。

我們可以很清楚看到打造一個 AI 系統僅使用單一模型的限制與局限,不是影像辨識模型就可以解決「打卡」這一個問題,還要配合系統面才可回答,這就引入到下一個環節,複合式 AI 系統(Compound AI System)。

什麼是複合式 AI 系統

img

我們將複合 AI 系統定義為使用多個互動元件(包括對模型、檢索器或外部工具的多次呼叫)來處理人工智慧任務的系統。相較之下,AI 模型只是一個統計模型,例如預測文本中下一 token 記的 Transformer。更多資訊可以查看柏克萊人工智慧研究所(Berkeley AI Research, BAIR)的部落格。在這個基礎之下,不一定只有使用大型語言模型搭建的系統才算,剛剛提到的AI打卡系統也是。

複合式 AI 系統好在哪?幹嘛導入?

  • 系統模組化,易於調整:透過系統設計思維來看待,任何都可以是組件,擁有大型語言模型、圖像辨識模型、Schema 驗證器、Adapter 類等,與資料庫互動的工具等。架構師可隨時保持高層思維來搭建服務。

  • 系統是靈活的:單一模型從根本上受到其訓練資料的限制。他們學習一組特定的資訊和行為,但缺乏搜尋外部資料來源或強制存取控制等功能。系統性解方可以添加外部資源,例如資料庫、程式碼解釋器、權限系統等,使複合式 AI 系統比單一模型更動態和靈活。

  • 透過系統設計,更好解決企業問題:使用更大、能力更強的模型可以改進人工智慧應用程序,但通常存在收益遞減點。此外,透過訓練或微調來改進或自訂模型可能既緩慢又昂貴。將其他模型或工具整合到複合系統中可能能夠提高應用程式質量,超出單一模型所能達到的水平,無論其能力如何。

哪些系統算複合式 AI 系統?

將目前常見的開發方式整理下,大概可以得到幾個方向

  • 檢索增強系統(RAG):透過大型語言模型理解查詢用意與推理能力,達到檢索相關資料正確性,並且能夠生成優秀的回應。

  • 對話式 AI(Conversation AI):對話式AI的核心在於其驚人的記憶力和語言生成能力。它能夠記住對話的上下文,理解語氣和情感,甚至能夠進行幽默的互動。經常結合RAG,能夠處理更複雜的查詢和任務。

  • 人機互動(Copilts): CoPilots 獨特之處在於其深度理解用戶工作環境的能力。它不僅能夠執行任務,還能預測用戶的需求,提供建議和見解。例如,MetaGPT 研究員能夠自動化網絡研究和報告生成,而 Devin 則是程式開發者的得力助手,STORM 可以生成維基百科文章。

img
(STORM 工作流程圖)

儘管大型語言模型的推理能力逐漸提高、成本大幅下滑,變得更加親民,不再讓幾家大公司掌握,但目前複合式 AI 系統的道路還在持續探索中。顯而易見的採用複合式 AI 系統的好處多多。

同時也注意到當中每個類別都使用到大型語言模型的推理能力、理解能力,也又是進行火紅的 AI 代理(AI Agent)。

什麼是 AI 代理?

img

在目前我們討論的 AI 代理(AI Agent)都是以語言模型驅動且具備自主解決問題的系統。

根據 Agent Blog 當中提到,一個 Agent 會擁有 規劃能力、推理能力、行為能力、記憶能力。當問題交給 Agent 時,能夠解析任務,並且推斷應該如何規劃與安排步驟,最後執行排定的任務,已完成交辦的事項。如果可以有上下文記憶能力的話,往往可以提供辦事效率。讓我們來看下圖,具體感受下 Agent 的運作方式:

上流程圖,可以參考 IBM What’s Agent 影片的圖來做橫的,並且靠 mermaid 格式

  1. 反應(Reaction):首先 Agent 收到任務後,先對任務進行一番審視。
  2. 行爲(Action):接者開始對任務逐一展開動作。這裡可以直接回答會是調用工具。
  3. 結束後觀察結果是否完成目標,不夠再回到步驟 A。

這樣的運作 Pattern 也是最知名的方式,稱之為 ReAct(ICLR'23)

你也可以不用記這麼多,就當作工具人來用就好。請他幫你修電腦,細節都免處理。

Agent 組成要素有什麼?

一個完整的 Agent通常具備四大關鍵能力,以便有效完成任務:

  1. 思考分析能力: 這是Agent最核心且首要的能力。它使Agent能夠將複雜任務分解成小步驟,並制定出完整的執行計劃。這種推理能力是Agent運作的基石。

  2. 規劃能力:形成子目標並建構從當前狀態到未來狀態的路徑的決策技能。這通常得益於能夠訪問底層環境以採取行動並從中學習。閱讀更多關於LLM在這裡規劃。

  3. 工具運用能力: 這裡的工具指的是 Agent 本身之外的程式或功能,在許多LLM開發環境中被稱為 Tool。Agent 需要判斷何時及如何調用這些外部工具,以最佳方式解決問題。這些工具可能是資料庫查詢、計算函數,甚至是其他語言模型。簡而言之,就是Agent能夠利用的所有外部資源。

  4. 資訊保存能力: 記憶在此可以有多重含義。它可以指 Agent 在思考過程中產生的內部日誌,這些日誌可以被存儲並在需要時調用。另一方面,它也可以指Agent與使用者之間的對話歷史。這種能力使 Agent 能夠提供更加個性化和連貫的互動體驗。

從 Agent 到 Agentic 的認知躍遷

it’s Agent, it’s Agentic

讓我們回憶一次 Agent 的特性,能夠使用其推理能力來思考和分析問題,然後形成一系列思考步驟,最終規劃出一個任務計劃來解決問題或實現任務。

如果某一個系統具備上述特性,那我們則可用 Agentic 來形容。

在機器學習領域中,我們常常需要澄清一些重要的概念區別,以推動技術的發展和應用。正如吳恩達博士所指出的,理解"Agent"和"Agentic"之間的差異,對於我們認識和發展人工智慧系統至關重要。

Agent 這個名詞通常指的是一個具有特定功能的獨立實體。在AI領域中,它可能是一個執行預定任務的程序或系統。相比之下, Agentic 是一個形容詞,描述的是系統表現出的類似 agent 的特性程度。這種區別不是簡單的二元對立,而是一個連續的光譜。

引入Agentic這個概念,不僅僅是術語的變化,更代表了我們對AI系統的認知轉變。它使我們能夠更靈活地描述和評估AI系統的能力,從而推動整個領域的發展。

聊天機器人和AI代理有什麼區別?

讓我們用一個常見案例進行比較

聊天機器人(ChatBot)

聊天機器人旨在模擬類人對話的軟體程序,通常使用預先定義的規則和決策樹來產生回應。他們擅長處理簡單、重複的查詢和自動化日常任務,例如提供有關營業時間的資訊、處理訂單或回答常見問題。

開發上,會整合 Bert-basd Model 來做意圖分類,放入大量邏輯跟預先寫好的腳本來引導引導使用者走入到正確的路線,就好像彈珠台珠子由最上方往下掉落,直到符合。這其中比較出名的開發框架 RASA 就起到不錯的作用。

聊天機器人依靠自然語言處理 (NLP) 來理解使用者輸入,並將其與知識庫中的適當回應進行配對。雖然它們可以被編程來處理更複雜的場景,但聊天機器人從根本上受到其腳本性質的限制,難以適應意外或微妙的對話。

AI 代理(AI Agent)

AI 代理使系統能夠在有限的直接人類監督下自主地追求複雜的目標和工作流程。代理人工智慧系統在規劃、推理和情境感知等領域展現出先進的能力,使它們能夠理解和解釋微妙的用戶意圖,並相應地調整他們的回應。

兩者最大的不同

區別特徵 Chatbot Agentic AI
決策自主性 依賴預先定義的腳本和規則來回應,無法自主做出決策。 能夠獨立評估情境,制定計劃並執行行動,以達成預期目標,不依賴固定腳本。
情境感知能力 通常只基於當前對話內容回應,無法理解更廣泛的情境或使用者的情緒和偏好。 能夠理解對話的更廣泛情境,包括使用者的情緒、偏好和過去的互動,提供更個性化且相關性更高的回應。
學習能力 依賴於預先設定的資料集和規則,通常不會從每次互動中學習或提升。 從每次互動中學習,不斷優化其知識和決策能力,提升未來的表現。
多模態互動 主要依賴於文字輸入和輸出,通常不支援語音或視覺數據的處理。 能夠無縫整合並處理多種輸入和輸出模態,如文字、語音和視覺數據,創造更自然且直觀的使用者體驗。

重點提示:主要區別在於他們的自主程度和決策能力。聊天機器人依賴預先定義的規則和腳本,而 AI代理可以自主評估情況、制定計劃並執行行動以實現預期結果。

反覆咀嚼開頭的問題:上班打卡。

讓我們再次具體說明這個打卡系統的例子。顯然,自動化考勤非常令人興奮,所以你想開發一個系統,不僅能辨識員工的進出,還能查詢他們的剩餘假期。這涉及到影像辨識和資料庫查詢兩個方面。面對這一個複雜的問題。有一些系統面問題需要規劃:

  1. 如何實現員工辨識?
    • 這可能需要一個影像辨識模型,透過公司的攝影機捕捉員工特徵,並進行訓練。
  2. 如何記錄考勤時間?
    • 系統需要在辨識到員工進出時自動記錄時間。
  3. 如何查詢剩餘假期?
    • 這就不能僅依靠影像辨識模型了,需要存取公司的人事資料庫,根據員工ID查詢相關資訊。
  4. 如何整合這些功能?
    • 可能需要設計一個複合式AI系統,結合影像辨識模型和資料庫查詢功能。

結論

我們正處於一個令人興奮的轉折點。越來越多的人正在將目光從單一的AI模型轉向複合式AI系統的設計和開發。這種轉變不僅僅是技術上的進步,更是思維方式的革新。

現在,我們不再局限於用傳統AI模型來解決固有問題。借助大型語言模型強大的規劃和推理能力,我們正在見證Agent技術的蓬勃發展。這意味著我們可以告別繁瑣的手動編程,不再需要為每個工作流程手寫代碼。相反,我們可以構建真正的Agentic AI系統,能夠自主理解、規劃和執行複雜任務。

你能想像在你的領域中,這樣的Agentic AI系統會帶來哪些革命性的變化嗎?

Agentic AI 參考資料:

  1. https://bair.berkeley.edu/blog/2024/02/18/compound-ai-systems/
  2. https://www.youtube.com/watch?v=G8lnNR1-rsw&list=PLOspHqNVtKADvnJYHm3HButDlWykOTzlP&index=5
  3. https://www.youtube.com/watch?v=F8NKVhkZZWI
  4. https://www.databricks.com/glossary/compound-ai-systems
  5. https://medium.com/@raunak-jain/design-patterns-for-compound-ai-systems-copilot-rag-fa911c7a62e0
  6. https://www.ada.cx/blog/chatbot-vs-ai-agent-what-s-the-difference-and-why-does-it-matter/
  7. https://arxiv.org/pdf/2402.02716
  8. https://youtu.be/G8lnNR1-rsw?si=Bbq4DLKRCDhu7G2x&t=710
  9. https://lilianweng.github.io/posts/2023-06-23-agent

本篇內文無程式碼,關注比賽用 Repo可隨時掌握 Agentic System 開發教學程式碼


上一篇
【Day 1】- Agentic System 探索之旅
下一篇
【Day 3】- LangGraph:構建下一代智能應用的革命性框架
系列文
2024 年用 LangGraph 從零開始實現 Agentic AI System31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言